﻿<%@ Page Title="d39 grid system" Language="C#" MasterPageFile="~/d39.Master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="d39._Default" %>

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="GridPaneContent">
    <div class="homePage">
        <h2>
            Welcome to d39!
        </h2>
        <div>
            <a class="newGridButton" href="GridBuild.aspx">Create a new v3.5 Grid</a>
            <a class="newGridButton" href="GridBuild.aspx?v=40">Create a new v4.0 Grid</a>
        </div>
        <div>
            <a class="newGridButton" href="GridLoad.aspx">Load a saved grid</a>
        </div>
        <p>Here's the to-do list. Putting it on the front page to remind myself and advertise it.</p>
        <h3>Infrastructure / Basic Functionality</h3>
        <ul>
            <li>Multiple grids/layers in a single post, combined into a single image, with shared initiative/legend
                <ul>
                    <li>Get layersets into ToQString and FromString and the HumanReadable variants</li>
                    <li>Get GridImage rendering a combined image</li>
                    <li>Get BBCode using a combined image</li>
                    <li>Get GridManipulator aware of multi layers</li>
                    <li>UI for adding layers, hiding layers, and putting things on layers</li>
                </ul>
            </li>
            <li>Labeled rows and columns in grid images</li>
            <li>Turn off ViewState on as many things as I can get away with (player list, command list, etc) and reduce the size of the datastructures in ViewState
            as far as possible, to improve performance. See if we can improve things further by tweaking the ClientIdMode and stuff.</li>
            <li>Ability to reorder the (walls, terrains and players) lists.</li>
            <li>Better handling of errors when someone types something that's not permitted.</li>
            <li>Add a UI for zooming and setting the size that the grid shows up at in bbcode.</li>
            <li>Bug: Menus for the grid go "under" the bbcode box and the wall/terrain legend.</li>
            <li>Add the option to not include the legend at all, as for excessively complicated maps it seems to break the forum.</li>
            <li>Ability to explicitly set a player's initiative roll rather than having it rolled for them.</li>
            <li>Spell areas of effect.
                <ul>
                    <li>Circle (color, opacity, center-corner, radius) "ffffff0XxYyRr"</li>
                    <li>Cone (color, opacity, center-corner, radius, compass direction) "ffffff0XxYyRrd"</li>
                    <li>Line (color, opacity, start-square, length-in-squares-or-feet, compass direction)</li>
                    <li>Rectangle (color, opacity, start-square, width-east, width-south - and possibly width-north, width-west too so the origin can be any corner)</li>
                </ul>
            </li>
        </ul>
        <h3>Longer-term features:</h3>
        <ul>
            <li>Ability to shift a set of coordinates around, to make cloning or moving wall/terrain features easy.</li>
            <li>Arrangement of Tiny/Diminutive/Fine items/players within a square so they don't all go in the very top leftmost corner.</li>
            <li>A graphical interface for placing walls and terrain, so you don't have to type in lists of coordinates.</li>
            <li>Account for difficult terrain in move distance calculations.</li>
            <li>Option to mark cells that are difficult terrain with red triangles.</li>
            <li>Ability to segregate off part of the information about the grid and reveal it over time by "merging in" from a grid that you keep private.</li>
            <li>Background images.</li>
        </ul>
        <div>
            <a href="?px=<%= int.Parse(Request.QueryString["px"] ?? "10") + 1 %>">Zoom bigger</a>
        </div>
        <div runat="server" visible='<%# int.Parse(Request.QueryString["px"] ?? "10") > 2 %>'>
            <a href="?px=<%= int.Parse(Request.QueryString["px"] ?? "10") - 1 %>">Zoom smaller</a>
        </div>
        <a href="GridBuild.aspx?px=<%= Request.QueryString["px"] ?? "10" %>&s=vv&p=1E007700ddWWWWwN-T'Ning_Gnome+Monk%0A1CAA0000klWww.njNwN.qknNN-Zombie_Undead+Menace&w=0000003bbbvvvvbbb.gmggjgmd..-Wall&t=CCFFCC133aa33bbnbpd5q5eohgidgbd..-Grass%0AX000000nnnoopppqozo5qnpmom..-Black+Hole">
            <img id="grid" src="GridImage.aspx?px=<%= Request.QueryString["px"] ?? "10" %>&s=vv&p=1E007700ddWWWWwN-T'Ning_Gnome+Monk%0A1CAA0000klWww.njNwN.qknNN-Zombie_Undead+Menace&w=0000003bbbvvvvbbb.gmggjgmd..-Wall&t=CCFFCC133aa33bbnbpd5q5eohgidgbd..-Grass%0AX000000nnnoopppqoz5nqnpmom..-Black+Hole&l=1" alt="a grid" />
        </a>
    </div>
</asp:Content>
